package com.liqi.device.domain;


import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import com.liqi.common.utils.excel.ExcelExport;
import com.liqi.common.utils.excel.ExcelImport;
import com.liqi.device.domain.dto.DvDriveSdkDto;
import com.liqi.monitor.domain.DvDeploymentSystem;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.liqi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * 设备对象 dv_device
 *
 * @author zhongping
 * @date 2022-02-14
 */
@Data
public class DvDevice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 系统自编型号编码 */
    @NotBlank(message = "系统自编型号编码不能为空")
    @ExcelExport(value = "设备编码")
    @ExcelImport("设备编码")
    private String code;

    /** 设备名称（设备型号） */
    @NotBlank(message = "设备型号不能为空")
    @ExcelExport(value = "设备名称")
    @ExcelImport("设备名称")
    private String name;

    /** BOM编码 */
    @NotBlank(message = "BOM编码不能为空")
    @ExcelExport(value = "BOM编码")
    @ExcelImport("BOM编码")

    private String bomCode;

    /** 规格 */
    @ExcelExport(value = "设备规格")
    @ExcelImport("设备规格")

    private String spec;

    private  List<DvDriveSdkDto> adapterVersions;

    /** 厂商的设备型号代码 */
//    @Excel(name = "厂商的设备型号代码",sort = 6)
    private String model;

    /** 品牌编码 */
    /*@Excel(name = "品牌编码")*/
    private String brandCode;
    /** 模块编码 */
    /*@Excel(name = "模块编码")*/
    private String moduleCode;

    /** 品牌名称 */
    @ExcelExport(value = "品牌名称")
    @ExcelImport("品牌名称")
    private String brandName;

    /** 状态（0：正常、1:停用） */
    /*@Excel(name = "状态", readConverterExp = "0=：正常、1:停用")*/
    private Integer status;

    /** 设备所有模块 */
    @ExcelExport(value = "模块")
    @ExcelImport("模块")
    private List<DvModule> modules;


    private String deleteModelName;

    private String deleteModelCode;

    private String deleteOperationUserCode;
    private String deleteOperationUserName;

    private String deleteDvBrandCode;
    private String deleteDvBrandName;

    private String deptId;
    private String createUserId;

    private Integer exportBlank;

}
